#ifndef EVICTION_H
#define EVICTION_H

#include "cache.h"
#include <stdlib.h>
#include <time.h>
#include <limits.h>


// 淘汰策略函数声明
int eviction_random(Cache* cache);
// 最近最少使用
int eviction_lru(Cache* cache);
// 最少使用
int eviction_lfu(Cache* cache);
// 近似最近最少使用 随机选择桶淘汰
int eviction_approx_lru(Cache* cache, int sample_size);

// 通用淘汰接口
int eviction_evict(Cache* cache);

// LFU衰减函数（解决冷启动问题）
int lfu_decay(Cache* cache);
// LFU维护函数（解决冷启动问题）
int lfu_maintenance(Cache* cache);

#endif